#pragma once

#include "Device.h"
#include <vector>

class DeviceManager : public Singleton<DeviceManager>
{
public:
	typedef vector<shared_ptr<Device>> DeviceList;

	DeviceManager(void);
	~DeviceManager(void);

	HRESULT Add(shared_ptr<Device> device);
	HRESULT Remove(shared_ptr<Device> device);
	BOOL Exist(shared_ptr<Device> device);

	HRESULT InitAllDevices(void);
	HRESULT UninitAllDevices(void);
	HRESULT RemoveAll(void);

private:
	DeviceList _DeviceList;
};

